<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    比较运算符
    <script>
        // 所有比较结果都是布尔值
        // 大小比较 一般对于数字比较多
        console.log(10 > 9);
        console.log(10 < 9);
        console.log(10 >= 9, 10 >= 10);

        // 相等比较 == !=
        console.log(10 == 10);
        // 判断相等, 相同是true
        console.log('你好' == '你好', '你好' == 'hello');
        // 判断不等, 不相同是true
        console.log('你好' != '你好', '你好' != 'hello');
        // 这个比较符号, 会尝试进行数据格式转换统一数据类型再比较
        // 目前前端行业, 比较严谨的公司, 都是不使用== != 判断
        console.log("10 == '10'", 10 == '10');
        console.log("false == 0", false == 0);
        console.log("true == 1",true == 1);
        console.log("undefined == null", undefined == null);
        console.log("{} == {}", {} == {});
        console.log('10' != 10);
        // 全等比较, 不会做转换, 比较保险, 是安全的比较
        console.log("10 === '10'", 10 === '10');
        console.log("false === 0", false === 0);
        console.log("true === 1",true === 1);
        console.log("undefined === null", undefined === null);
        console.log('10' != 10);

        const str = "10";
        const num = 10
        // 如果真的只想判断是否数字相同, 不想管类型
        // 也建议用全等===, 然后手动进行数据转换
        // 这样子的做法, 要比用 == 替换 === 要好
        // 1. 如果你有自己的标准, 默认只用 === 那么就不会在每次写代码的时候去考虑用什么, 减少心智负担
        // 2. == 默认会将数据先转换为相同类型的操作, 是看不见js默认提供的不相干功能, 称为副作用
        if (Number(str) === Number(num)) {
            console.log('他们数字相同');
        }
    </script>
</body>
</html>